Zaloguj się do systemu podając nazwę użytkownika i hasło. Uruchom emulator terminala :
Ikonka lewy dół ekranu -> SystemTools -> konsole
Komenda ls służy do wyświetlania zawartości katalogu
Wpisz komendę ls (ang. list):
ls
Wykorzystaj przełączniki, porównaj efekty wykonania następujących komend:
ls
ls -l
ls -a
ls -l -a
ls -a -l
ls -la
ls -al
Zastosuj nazwy uogólnione w odwołaniach do plików, stosując znaki specjalne:
* - dowolny ciąg znaków,
? - pojedynczy znak,
[] - pojedynczy znak ze wskazanego zbioru.
W celu wykonania ćwiczenia utwórz komendą touch puste pliki o różnych nazwach:
touch a.txt b.txt c.txt
touch a.dat b.dat ab.dat
ls *.txt
ls a*
ls *.*
ls *
ls [ab].txt
ls ?.dat
ls *.???
Podstawowe przełączniki:
-l : podaje więcej informacji o plikach (typ, prawa, liczbę dowiązań, rozmiar, właściciela i grupę, datę modyfikacji i nazwę)
-a : wyświetla również pliki ukryte
-d : wymusza traktowanie ścieżki jako katalog (np. pokazuje prawa do samego katalogu zamiast wyświetlać jego zawartość)
-t : sortuje wyświetlane pozycje wg daty modyfikacji
Sprawdź nazwę katalogu bieżącego komendą pwd (ang. print working directory).
pwd
Zmień bieżący katalog komendą cd (ang. change directory), wykonaj serię komend i sprawdź ich działanie:
cd /
cd /usr
cd local
cd bin
cd ..
cd man
cd .
cd
Wykonaj komendę ls stosując zarówno przełączniki jak i argumenty:
ls -l /usr
ls -l -a /tmp
ls -l
Przywołaj pomoc systemową opisującą komendę ls:
man ls
Znajdziesz tam opis działania, argumentów i przełączników stosowanych z daną komendą. Zapoznaj się z podstawowymi komendami sterującymi przeglądarką pomocy systemowej:
q - wyjście,
Enter, j, k - przewijanie liniami,
Spacja, Ctrl–f, Ctrl–b, Ctrl–d, Ctrl–u - przewijanie stronami,
g, G - przejście na początek/koniec pliku,
/ - rozpoczęcie wyszukiwania tekstu,
n, N - przejście do następnego/poprzedniego wystąpienia słowa
d - przewinięcie o pół ekranu w dół
u - przesunięcie o pół ekranu w górę
Przećwicz mechanizm przywoływania i edycji ostatnio wykonywanych komend stosując klawisze kursorów góra i dół.
Wyświetl historię ostatnio wykonywanych poleceń komendą history.
Przećwicz interaktywne przeszukiwanie ostatnio wykonywanych poleceń dostępne po wciśnięciu kombinacji Ctrl–r.
Przećwicz mechanizm automatycznego uzupełniania nazw programów i plików za pomocą Tab:
Wpisz mk Tab Tab d Tab
Wpisz ls m Tab
Przećwicz przewijanie zawartości okna terminala kombinacjami Shift–PgUp, Shift–PgDn, Shift–ArrowUp, Shift–ArrowDown
Przetestuj odświeżenie ekranu kombinacją Ctrl–l i komendą clear.
Przetestuj zamykanie konsoli poprzez Ctrl–d.
Utwórz przykładowe podkatalogi w swoim katalogu domowym:
mkdir x1
mkdir x2 x3
mkdir -p x1/x4/x5
Co robi przełącznik -p ?? Wyświetl strukturę katalogów korzystając z komend
ls
tree
ls -lR
Usuń katalogi komendą
rmdir
rmdir x1
rmdir -p x2
Utwórz przykładowe pliki komendą touch (tworzy pusty plik) lub dowolnym edytorem
touch a.txt
touch b.csv c.dat
Przetestuj komendę cp (ang. copy) służącą do kopiowania katalogów:
cp a.txt b.txt
cp -i a.txt b.txt
cp a.txt b.txt x1/
cp a.txt x1/d.txt
cp *.txt x2/
cp -v *.txt x2/
Zwróć uwagę na zastosowanie i funkcje przełączników.
Sprawdź jak zachowa się polecenie
cp a.txt ab
ab nie istnieje,
ab jest plikiem zwykłym,
ab jest katalogiem.
Przećwicz usuwanie plików komendą rm (ang. remove)
rm a.txt b.txt
rm *.txt
rm -i *.txt
Komenda rm umożliwia również usuwanie całych struktur katalogów, łącznie z plikami znajdującymi się w środku:
rm -r x1/
Sprawdź co powoduje przełącznik -f komendy rm (man rm).
Przećwicz kopiowanie całych struktur katalogowych:
cp -r x1/ x5
Sprawdź działanie komendy w przypadku, gdy
x nie istnieje
x jest katalogiem.
Sprawdź działanie przełączników -T i -t komendy cp
Zmień nazwę wybranego pliku:
mv a.txt e.txt
Zmień lokalizację pliku:
mv a.txt x2
Wykonaj te akcje jednocześnie
mv a.txt x2/e.txt
Sprawdź działanie przełączników -v, -i, -t, -T w przypadku komendy mv. Sprawdź działanie komendy mv w odniesieniu do katalogów:
mv x1/ x2/
mv x2/ ac
cd x3
mv a.txt ..
mv ../a.txt .
Wyświetla zawartość pliku.
touch a.txt
printf "abc\n" > a.txt
cat a.txt
Proces kompilacji programu w języku C składa się zwykle z czterech etapów:
Prekompilacja (preprocessing). W czasie tego etapu przetwarzane są instrukcje preprocesora związane z dołączaniem plików, kompilacją warunkową czy makrami.
Kompilacja (compilation). W czasie tego etapu kod przetworzony przez preprocesor jest przekształcany na kod źródłowy w języku assemblera.
Assemblacja (assembly). W czasie tego etapu tworzone są pliki obiektów, zbudowane z przetworzonego na język maszynowy kodu assemblera.
Linkowanie/konsolidacja (linking). W czasie tego etapu pliki obiektów i bibliotek łączone są tak, że powstaje jeden wykonywalny plik, w którym odwołania do elementów zdefiniowanych w innych plikach obiektów mogą być realizowane.
Zapisz poniższy program jako program.c :
#include <stdio.h>
main()
{
int number;
printf("Enter an integer\n");
scanf("%d",&number);
printf("Integer entered by you is %d\n", number);
return 0;
}
Kompilacja za pomocą kompilatora gcc:
gcc --version #wersja gcc
gcc program.c -o program #kompilacja pliku program.c do pliku wykonywalnego program
./program
gcc program.c -Wall -o program #Jeżeli chcesz, aby kompilator wyświetlał ostrzeżenia w miejscach które uznał za niepewne, użyj opcji -Wall
Ćwiczenie
Zweryfikuj efekt działania kompilatora gcc w poszczególnych etapach kompilacji. W tym celu użyj:
— opcji -c, aby zakończyć działanie kompilatora na procesie assemblacji,
—opcji -S, aby zakończyć działanie kompilatora na procesie kompilacji,
— opcji -E, aby zakończyć działanie kompilatora na procesie prekompilacji.
gcc program.c -c -o program.o
gcc program.c -S -o program.s
gcc program.c -E -o program.e
Jak widzisz Linux pozwala kompilować bezpośrednio pliki C. W ogólności powinniśmy jednak korzystać z mechanizmu makefile. Stwórz plik o nazwie makefile i zapisz do niego:
program : program.c
gcc -o program program.c
Uruchom make wpisując:
make
make #co się stało?
rm program #usun program
make #wykonaj make raz jeszcze
./program
Domyślnie komenda make oczekuje, że plik opisu kompilacji będzie się nazywał Makefile lub makefile. Jeżeli nazywa się on inaczej powinniśmy to zadeklarować korzystając z opcji -f.
cp makefile sample.txt
make -f sample.txt
Make przydaje się w wielu sytacjach, szczególnie wtedy gdy plik są powiązane złożonymi rekurencyjnymi zależnościami i modyfikacja jednego wymusza zmianę (rekompilację) innych. Poczytaj więcej o tworzeniu i składni plików makefile na:
Zadanie 1
Prześlij w mailu komendy potrzebne do wykonania następujących operacji:
przejdź do swojego katalogu domowego
utwórz podkatalog o nazwie będącej numerem Twojego indeksu
przejdź do utworzonego katalogu
zmień nazwę pliku plik.txt na plik2.txt
wyświetl wszystkie pliki bieżącego katalogu o rozszerzeniu .txt
utwórz we wcześniej utworzonym katalogu podkatalog o nazwię będącym Twoim nazwiskiem
skopiuj plik plik2.txt do nowo utworzonego podkatalogu
przejdź do katalogu domowego
usuń (za pomocą jednego polecenia) katalog o nazwie będącej numerem Twojego indeksu (utworzony na początku) wraz z całą zawartością
Zadanie 2
Odpowiedz na pytanie do czego służą polecenia od, grep, tr (wykorzystaj man).
Zadanie 3
Dla wybranego problemu ze sprawdzarki (acm.edu.pl) stwórz plik makefile, który będzie: kompilował kod w dwóch turach (najpierw do plików obiektów .o a potem do pliku wykonywalnego), testował, czy dla przykładowego testu otrzymujemy poprawne odpowiedzi, oraz posiadał regułę clean czyszczącą plik .o. W przypadku testowania możesz wykorzystać jako pomoc materiały z:
http://www.cs.toronto.edu/~penny/teaching/csc444-05f/maketutorial.html
Prześlij jako odpowiedź w mailu powstały plik makefile.
Termin wykonania zadań: Sobota 5(9 lub 12).12.2015 do godziny 24.00. Proszę o przesłanie rozwiązań mailem . W temacie powinien znajdować się numer indeksu i słowo DNIF.